#ifndef TEXTURE_H
#define TEXTURE_H

#include <GL/glew.h>
#include <GL/glu.h>
#include <SDL/SDL.h>

/*!
 * 	\class Texture
 * 	\brief Stocke les informations concernant une texture
 */
 
class Texture
{
	public:

            SDL_Surface *surface;
	
		unsigned char *image;		/*!< Tableau d'unsigned char contenant les informations de l'image */
		
		int width;			/*!< Longueur de l'image */	
		int height;			/*!< Largeur de l'image  */
		int size;			/*!< Taille totale de l'image (width*height) */
		
		
		GLuint textureIndex;	/*!< 	Indice retourné par la méthode glGenTextures permettant son identification dans le 
										buffer openGL */
										
		int bitPerPixel;		/*!<	Nombre de bit utilisé pour représenter un pixel	*/
		int nbCanaux;			/*!<	Nombre de canaux utilisés pour représenter un pixel (un canal = 8 bits),
										exemple RGB = 3 cannaux, RGBA = 4 cannaux */


		/*!
		 * 	\fn	Texture(const char * fileName)
		 * 	\brief Construit une texture à partir d'une image
		 * 
		 * 	\param const char * fileName : nom de l'image à utiliser pour la texture
		 */
		 
		Texture(const char* fileName);	
		
		void Define_bouclage(void);
		void Define_filtrage(void);
		
		void Use();
		
		GLuint Get_index();
};

#endif // TEXTURE_H
